EX

{Duvidasimples} Como Registra.lua

Por exorcist, 04 de mar. de 2012 em Archived

otserv
tibia
script
8
1.1k
exorcistE
04 de março de 2012 às 11:12

quero saber como registra um script .lua como esse do HEARTNB que eu achei q quando o player morre aparece o coraçao dentro dele falando pra quem ele morreu eo lv q ele morreu eu intendi td desse script.lua mais n sei registra ele da uma ajudinha ae pow sei q é simples mais eu nao sei kk

 

 

if getPlayerLevel(cid) >= 1 then

mh = doPlayerAddItem(cid5943,1)

doSetItemSpecialDescription(mh,"This is the heart of ".. getPlayerName(cid) ..", killed at level ".. getPlayerLevel(cid) .." by ".. getPlayerName(killer) ..".")

 

 

 

 

Att: Dark kingdom

 

 

he.gif

 

pq nimguem ajuda ? D: :'(

SkyDangerousS
04 de março de 2012 às 11:23

1- script ta errado

2- falto uma virgula apos o cid,

3- faltou uma funcao

 

.. Dependendo da funcao vc ira registrar..

No caso e onkill ..

 

Cola uma tag la do creaturecripts.xml , e muda o evento para kill , e nime voce pom tipo Test.

Em seguida voce vai la no login.lua e registra com o nome Test.

 

Estou no celular responde, se nao intendeu eu edito mais tar o topico.

exorcistE
04 de março de 2012 às 11:35

nao entendi '-'

jhon992J
04 de março de 2012 às 12:13

Da para usar esse tipo de código em um Creaturescript! Existem varios tipos posiveis de creaturescripts. Alguns tipos:

onDeath -- executa ao morrer.

onAttack -- executa ao atacar.

onCombat -- semelhante ao onAttack.

onLogin -- executa ao logar.

 

Para criar esse tipo de script, primeiramente vai na pasta data/creaturescripts/scripts e duplica um arquivo e salve com "nomedesejado";

Você vai fazer uma função "onDeath"(ao morrer), para ativar esse seu script.

Code vai ficar mais ou menos assim:

1 function onDeath(cid, corpse, killer)

2 if getPlayerLevel(cid) >= 1 then
3    mh = doPlayerAddItem(cid,5943,1)
4    doSetItemSpecialDescription(mh,"This is the heart of ".. getPlayerName(cid) ..", killed at level ".. getPlayerLevel(cid) .." by ".. getPlayerName(killer) ..".")
5 end

6 return true
7 end

 

Numerei as linhas pare melhor intendimento.

Linha 1 = Inicio da função onDeath, essa linha recebe algumas informações do player que morreu, como seu id, o id do player que matou e o corpse.

'' 2 = Iniciase um if onde verifica se o level do player morto era maior ou igual a 1. Se for verdadeiro, o script executa as linhas 3 e 4, senão pula direto a linha 5.

'' 3 = Adiciona um item com o id 5943 ao player morto e salva o uid do item na variavel "mh".

'' 4 = Adiciona o texto ao item. "This is the heart of ".. retorna nome do morto ..", killed at level ".. retorna level do morto .." by ".. retorna nome do matador .."."

'' 5 = Finaliza o if que se iniciou na linha 2.

'' 6 = Retorna a função ao character, sempre use return no final dos seus scripts.

'' 7 = Finaliza a função onDeath.

 

Acho que esta bem explicadinho, por fim para funcionamento do seu script precisa adicionar 2 tags:

1º No "creaturescripts.xml"

2º No arquivo "login.lua"

 

Vai em data/creaturescripts/creaturescripts.xml e cole a tag:

<event type="death" name="QualquerNome" event="script" value="nomedesejado.lua"/>

 

O nome desejado é o nome com qual você salvou o script.

 

Agora em data/creaturescripts/scripts/login.lua, sempre antes do último return true:

registerCreatureEvent(cid, "QualquerNome")

 

QualquerNome é o nome que você adicionou na tag do creaturescripts.xml.

 

Acho que é isso aew, espero ter ajudado. E para auciliar em seus scripts sempre use uma lista de funções como essa:

http://www.xtibia.com/forum/topic/138081-lualista-de-funcoes/

E procure por tutoriais e scripts como sua base;

exorcistE
04 de março de 2012 às 12:18

vlw ai vo testa aki se funciona rep+

04 de março de 2012 às 22:16

Jhon992 Vc Me ajudou mt cara não entendo nda de creaturescripts amanhã vc ganha rep+

 

Sempre aprendendo com vcs (y'

Editado Março 4 por DuuhCarvalho

jhon992J
04 de março de 2012 às 23:35

Que isso to aqui pra ajudar, precisar de alguma explicação é sóh da um toque.

04 de março de 2012 às 23:50

Que isso to aqui pra ajudar, precisar de alguma explicação é sóh da um toque.

 

Blls Mano Vlw (y' e vc vai ganhar meu rep+